package cn.bug.greenflag.service;


import cn.bug.greenflag.pojo.dto.AdminAddNewDTO;
import cn.bug.greenflag.pojo.vo.AdminFaceLoginVO;
import cn.bug.greenflag.pojo.dto.ProcessInfo;
import cn.bug.greenflag.pojo.vo.AdminListItemVO;
import com.arcsoft.face.FaceInfo;
import com.arcsoft.face.toolkit.ImageInfo;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;
import java.util.concurrent.ExecutionException;

@Transactional
public interface IAdminService {

    /**
     * 添加一个管理员信息
     * @param adminAddNewDTO 管理员传入的新增管理员信息
     */
    void addNew(AdminAddNewDTO adminAddNewDTO);

    /**
     * 显示列表
     * @return list列表
     */
    List<AdminListItemVO> list() ;


    /**
     * 添加人脸信息
     * @param imageInfo
     */
    void faceAdd(ImageInfo imageInfo, Long id);

    /**
     * 检测人脸
     * @param imageInfo
     * @return
     */
    List<FaceInfo> detectFaces(ImageInfo imageInfo);
    /**
     * 匹配面部特征
     * @param faceFeature
     * @return
     */
    List<AdminFaceLoginVO> compareFaceFeature(byte[] faceFeature) throws InterruptedException, ExecutionException;

    /**
     *  获取脸部特征
     * @param imageInfo
     * @return
     */
    public byte[] extractFaceFeature(ImageInfo imageInfo);


    /**
     *  提取图像的性别和年龄
     * @param imageInfo
     * @return
     */
    List<ProcessInfo> process(ImageInfo imageInfo);
}
